Custom Ranking (Algolia)
GPT-4.icon
上記の基準だけだと、例えば「人気が高い商品を上位にしたい」といったビジネス的な都合を反映できません。
そこで使うのがCustom Ranking(カスタムランキング)です!
各レコードに「売上数」「閲覧数」「いいね数」などのビジネス指標を入れておき
それを使って、人気順や新着順に並べることができる
つまり、Algolia標準の「マッチ精度による順位付け」の後に、ビジネス指標で順位をさらに調整するという仕組みです!
例
code:json
[
{ "name": "iPhone 6 Plus", "popularity": 20 },
{ "name": "iPhone 6", "popularity": 10 },
{ "name": "iPhone 7", "popularity": 200 }
]
このデータに対して「iphone」で検索すると、
1. iPhone 7(popularity 200)
2. iPhone 6 Plus(popularity 20)
3. iPhone 6(popularity 10)
の順で並びます(降順=大きい数値が上)。
例えば、売上数で差がつけばそれで順位が決まり、
売上数も同じなら、次にレビュー数を見て差をつける、という動きになります。
Precision(精度)に注意!
Custom Rankingに使うデータが細かすぎると、実質タイブレークが起こらない問題があります。
例えば:
rating: 4.321321
rating: 4.298124
rating: 4.312878
こういうデータだと、すべて微妙に違うので tie しない → 次の基準(たとえばviews)が意味をなさない。
なので、必要に応じて精度を落とす(丸める)ことが推奨されます。
(例:「4.3」と小数第1位で四捨五入して保存する)
これにより、
同じratingになるレコードが増え
次のviewsなどで差をつける余地が生まれる
というわけです!